package com.snail.model.pojo.mall;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 商品评价表实体类
 * 对应表：biz_product_review
 */
@Data
@TableName("biz_product_review") // 绑定数据库表名
public class BizProductReview {

    /**
     * 评价ID（主键，自增）
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 关联商品ID
     */
    @TableField("product_id")
    private Integer productId;

    /**
     * 关联规格ID（用户购买的具体SKU）
     */
    @TableField("sku_id")
    private Integer skuId;

    /**
     * 评价用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 评分（1-5分）
     */
    private Integer score;

    /**
     * 评价内容
     */
    private String content;

    /**
     * 评价图片（多个URL用逗号分隔）
     */
    private String images;

    /**
     * 评价视频（多个URL用逗号分隔）
     */
    private String videos;

    /**
     * 状态（0=待审核，1=已展示，2=已隐藏）
     */
    private Integer status;

    /**
     * 创建时间（插入时自动填充）
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间（插入和更新时自动填充）
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 创建人（用户ID，插入时自动填充）
     */
//    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 更新人（操作人ID，插入和更新时自动填充）
     */
//    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    /**
     * 逻辑删除标识（0=未删，1=已删）
     */
    private Integer deleted;

    /**
     * 父评论ID（实现多级嵌套，0=一级评论，>0=关联上级评论ID）
     */
    @TableField("parent_id")
    private Integer parentId;

    /**
     * 子类评论（数据库无此字段，标记为非数据库字段）
     */
    @TableField(exist = false)
    private List<BizProductReview> children;
}